我們先從TelemetryContext這個我們常常會看到的物件開始講起
如上圖,TelemetryContext本身有這些屬性
屬性 | 解釋 |
---|---|
Cloud | 應用程式在雲端上運行的資訊 |
Component | 應用程式與版本 |
Device | 應用程式執行所在裝置的相關資料, 在Web Application中,這是傳送遙測的伺服器或是用戶端裝置 |
InstrumentationKey | Azure中遙測顯示之位置的Application Insights資源通常會揀選自 ApplicationInsights.config |
Location | 裝置的地理位置 |
Operation | 在Web應用程式中,目前的HTTP Request在其他應用程式類型中,我們可以設定以將事件群組在一起 |
Properties | 與所有遙測資料一起傳送的屬性可以在個別 Track* 呼叫中覆寫 |
Session | 使用者的工作階段識別碼會設為產生的值,當使用者一段時間沒有作用時會變更 |
User | 使用者資訊 |
以下是一些Context的內容
Cloud:
屬性 | 解釋 |
---|---|
RoleInstance | 角色資訊 |
RoleName | 角色名稱 |
Operation:
屬性 | 解釋 |
---|---|
ID | 產生的值,與不同事件相互關聯,如此當您在診斷搜尋中檢查任何事件時,我們可以發現相關項目 |
Name | 識別碼,通常是HTTP要求的URL |
SyntheticSource | 這個字串表示要求的來源已被識別為傀儡程式或Web測試根據預設,會從計量瀏覽器的計算中排除 |
謎之音:為什麼要了解TelemetryContext這個物件呢?
答:當然是因為我們會有需要自己客製化的需求啦....
謎之音:那....有沒有什麼需要注意的呢?
答:當然有!!
如果我們需要自行設定這些值,請記得從ApplicationInsights.config移除相關的程式碼,避免我們想要的值和標準值混淆(如果你是使用dotnet core就不用理會這一條)
dotnetcore的自定義用法,與以往相同(當然是DI啦)
我們只需要3個步驟就好了
Step1. 定義一個實作ITelemetryInitializer的物件
Step2. 記得在Startup.cs註冊即可
Step3. 發行它!